#include<bits/stdc++.h>
#define int long long 
using namespace std;

const int maxn=2e3 + 10;
int n, m;
char matrix[maxn][maxn];
bool vis[maxn][maxn];
int ans;

// 判断越界
bool ok(int x, int y){
	return (x>=1&&x<=n&&y>=1&&y<=m);
}


void solve(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			cin>>matrix[i][j];
		}
	}
	
	int ans=0;
	for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++){
			if(matrix[i][j]=='.'||vis[i][j]){
				continue;
			}
			// 以该位置为左上角的
			int cnt=0; // cnt 是多 1 的
			// 往右下
			int x1=i, y1=j;
			while (ok(x1, y1)&&matrix[x1][y1]=='*') {
				cnt++;
				
				// 开始右上角
				int cnt2=0;
				int x2=x1;
				int y2=y1; 
				while(ok(x2, y2)&&matrix[x2][y2]=='*'){
					cnt2++;
					x2--;
					y2++;
				}
				ans=max(ans, min(cnt, cnt2)-1);
				
				vis[x1][y1]=true; // 先标记
				x1++;
				y1++;
			}
		}
	}
	cout<<ans<<'\n';
}


signed main(){
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	solve();
	return 0;
}
